Développement Fullstack d'un Système d'Information Scientifique
Le projet concernait le développement, le déploiement et l'installation du Système d'Information Scientifique OpenSilex. Il s'est déroulé entre novembre 2021 et juillet 2022, à Montpellier.
Plusieurs défis ont émergé tout au long des différentes missions, tous liés à OpenSilex. Le premier consistait à ajouter une fonctionnalité permettant le suivi des trajectoires d'objets scientifiques, associées à des données environnementales. Un autre objectif était le développement d'un package R Shiny pour faciliter la connexion à OpenSilex via des applications, ainsi que la migration de données lacustres (projet Answer) vers la version la plus récente d'OpenSilex. Enfin, il s'agissait d'installer et configurer une nouvelle instance OpenSilex pour la gestion de données expérimentales sur les vignes et le vin, dans le cadre du projet Sinfonia.
Les parties prenantes incluaient l'UMR MISTEA pour les développements liés à OpenSilex, l'IFV pour le développement open-source et la gestion de l'instance Sinfonia, et le projet Answer pour la migration des données lacustres.
Tâches & Objectifs
Mon rôle principal dans ce projet était celui de développeur, avec des missions spécifiques de conseil en web sémantique, particulièrement pour la modélisation de données dans le projet Sinfonia.
Les objectifs variaient selon les missions :
- permettre l'association de données météorologiques avec le mouvement d'un objet scientifique
- assurer une connexion fluide avec le serveur via un client R performant dans une bibliothèque Shiny réutilisable
- migrer la version OpenSilex pour le projet Answer vers la plus récente
- configurer et déployer l'instance OpenSilex Sinfonia.
Le succès de chaque tâche était mesuré par le bon fonctionnement du système ou des fonctionnalités spécifiques, dans le cadre de la mission définie.
Actions et Développement
Concrètement, j'ai ajouté de nouvelles fonctionnalités au logiciel OpenSilex, construit une bibliothèque générique pour les applications Shiny, effectué des ETL personnalisés pour migrer des données entre deux versions majeures d'OpenSilex, et installé et configuré une nouvelle instance système.
Ces actions s'inscrivaient dans des projets de recherche et développement, en étroite collaboration avec des responsables scientifiques et techniques. L'utilisation d'ontologies, souvent complexes à manipuler, était centrale dans ce système d'information.
J'ai travaillé avec l'UMR MISTEA, l'IFV, des agronomes, des ingénieurs agricoles et l'équipe de développement OpenSilex.
Parmi les défis rencontrés, le code, encore en phase de prototypage, évoluait rapidement, compliquant les migrations manuelles et la modélisation en raison des spécificités de chaque domaine scientifique. Le manque d'automatisation et les spécificités des clients API compliquaient également certaines tâches.
Les décisions techniques étaient prises collectivement avec l'équipe de développement et le comité de pilotage, en tenant compte des besoins utilisateurs et des contraintes scientifiques.
Résultats
Les résultats de ce projet incluent l'installation et la configuration d'une nouvelle instance OpenSilex pour la gestion de données expérimentales sur les vignes et le vin (Sinfonia), la migration réussie de données vers la version la plus récente du logiciel, ainsi que la création d'un package R menant à la construction d'une application Shiny permettant une visualisation plus spécifique des données.
Parmi les leçons apprises, j'ai observé l'importance cruciale des outils de génération de code et du respect des spécifications pour assurer le bon fonctionnement d'un système d'information. La migration manuelle de données, compte tenu des spécificités des différents domaines scientifiques, nécessite une rigueur particulière. L'évolution rapide du modèle de base, parfois sans compatibilité ascendante, peut nuire à l'utilisateur, d'où l'importance de respecter le versioning sémantique.
Enfin, des compétences techniques solides dans la construction de clients API, particulièrement en R/Shiny, sont essentielles.
Stack Technique
Le projet repose sur les outils et technologies suivants :
- Scripts de Migration : Python
- Client OpenSilex : R/Shiny
- Service de Données Environnementales : Java
- Requêtes Sémantiques : SPARQL
Il est important de noter que cette stack technique est héritée : je n'ai pas participé aux choix initiaux. Les défis techniques majeurs rencontrés incluent :
- Migration de données pour le projet Answer : Le modèle ayant évolué considérablement entre les versions, et les données étant spécifiques aux simulations mathématiques, de nombreux ajustements ont été nécessaires pour les adapter au nouveau modèle. Le manque de documentation a également compliqué ce processus.
- Développement du service de récupération de données environnementales : Complexité du modèle de données physiques et problèmes d'architecture logicielle, rendant la tâche plus difficile qu'elle n'aurait dû l'être.